package com.siwei.mes.service.erp;

import com.siwei.mes.entity.dto.RwdextraExtendUpdateDto;
import com.siwei.mes.entity.erp.Rwdextra;
import com.siwei.mes.entity.erp.RwdextraExtend;
import com.siwei.mes.entity.erp.RwdextraExtendMaterials;
import com.siwei.mes.entity.erp.RwdextraPrintEntity;
import com.siwei.mes.entity.mixproportion.MixProportion;
import com.siwei.mes.upload.erp.entity.ErpAddTaskPhbLog;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * ERP任务单扩展信息 （品控）(RwdextraExtend)表服务接口
 *
 * @author linzi
 * @since 2024-08-02 16:22:23
 */
public interface RwdextraExtendService {

    /**
     * 任务单第一盘开始生产
     *
     * @param rwdextra
     * @param qualityCertificateNo
     */
    void hasItemorder(Rwdextra rwdextra, String qualityCertificateNo);

    /**
     * 完成一车修改供应结束时间
     *
     * @param rwdextraExtend
     */
    void updateSupplyEndTime(RwdextraExtend rwdextraExtend);

    /**
     * 批量修改
     *
     * @param entity
     * @return
     */
    List<RwdextraExtend> updateBatch(RwdextraExtend entity);

    /**
     * 批量修改
     *
     * @param entity
     * @return
     */
    List<RwdextraExtend> updateBatchPrint(RwdextraExtend entity);

    /**
     * 批量修改
     *
     * @param entity
     * @return
     */
    List<RwdextraExtend> updateBatchPrintDetailRwdextra(RwdextraExtendUpdateDto entity);

    /**
     * 根据任务单修改信息生成报告
     *
     * @param entity
     * @return
     */
    RwdextraExtend generateReport(RwdextraExtend entity);

    /**
     * 任务单已打印
     *
     * @param frwdh 任务单号
     */
    void isPrint(Integer frwdh);

    /**
     * 给任务单打印json赋值(配合比)
     *
     * @param rwdextra 任务单
     */
    void setRwdextraPrintInfoPhb(Rwdextra rwdextra);

    /**
     * 给任务单打印json赋值
     *
     * @param rwdextraPrintInfo
     */
    void setRwdextraPrintInfo(RwdextraPrintEntity rwdextraPrintInfo);

    /**
     * 查询所有品控扩展信息
     *
     * @param frwdList
     * @return
     */
    Map<Integer, RwdextraExtend> getRwdextraExtendMap(Set<Integer> frwdList);

    /**
     * 批量修改任务单扩展表打印json
     *
     * @return
     */
    void updateBatchRwdextraJson();


    /**
     * 根据任务单号修改任务单扩展表氯离子含量
     *
     * @return
     */
    void updateBatchLlzhl(String frwno);

    void setMixProportionPktzId(MixProportion mixProportion, Rwdextra rwdextra);

    /**
     * 设置任务单原材料信息
     *
     * @param entity
     */
    void setMaterialsInfo(RwdextraExtendMaterials entity);

    /**
     * 获取任务单原材料信息
     *
     * @param entity
     */
    RwdextraExtendMaterials getMaterialsInfo(RwdextraExtendMaterials entity);

    /**
     * 给任务单打印json赋值(配合比)铁标
     *
     * @param erpAddTaskPhbLog erp任务单配合比调整日志
     */
    void setRwdextraPrintInfoPhb(ErpAddTaskPhbLog erpAddTaskPhbLog);
}
